package top.vains.util;

import lombok.extern.slf4j.Slf4j;
import top.vains.entity.Result;
import top.vains.enumeration.ResultEnum;

/**
 * 响应工具类
 *
 * @author vains
 * @version 1.0
 * @since 2019/11/9 0:13
 **/
@Slf4j
public class ResultUtils {

    private ResultUtils(){}

    /**
     * 响应成功带数据
     * @param message 信息
     * @param data 数据
     * @param <T> 数据类型
     * @return 返回result对象
     */
    public static <T> Result<T> success(String message, T data) {
        return new Result<>(ResultEnum.SUCCESS.getCode(), message, true, data);
    }

    /**
     * 响应成功不带数据
     * @param message 信息
     * @return 返回result对象
     */
    public static Result<String> success(String message) {
        return new Result<>(ResultEnum.SUCCESS.getCode(), message, true, "");
    }

    /**
     * 响应失败
     * @param message 信息
     * @return 返回result对象
     */
    public static Result error(String message) {
        return new Result<String>(ResultEnum.ERROR.getCode(), message, false, null);
    }

    /**
     * 响应失败
     * @param code 错误码
     * @param message 信息
     * @return 返回result对象
     */
    public static Result error(int code, String message) {
        return new Result<String>(code, message, false, null);
    }

    /**
     * 没有权限
     * @param message 信息
     * @return 返回result对象
     */
    public static Result authError(String message) {
        return new Result<String>(ResultEnum.NO_PERMISSION.getCode(), message, false, null);
    }

}
